//package com.wwm.makerandroid.makerandroid.View.Fragment;
//
//import static java.nio.file.Paths.get;
//
//import android.content.Intent;
//import android.os.Bundle;
//import android.support.v4.app.Fragment;
//import android.support.v7.app.AlertDialog;
//import android.support.v7.widget.LinearLayoutManager;
//import android.support.v7.widget.RecyclerView;
//import android.util.Log;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.view.ViewGroup;
//import android.widget.ArrayAdapter;
//import android.widget.ListAdapter;
//import android.widget.ListView;
//
//import com.google.gson.internal.LinkedTreeMap;
//import com.wwm.makerandroid.makerandroid.Bean.RespondBean.UserCollectArticleBean;
//import com.wwm.makerandroid.makerandroid.Bean.ViewBean.CollectArticleBean;
//import com.wwm.makerandroid.makerandroid.Bean.ViewBean.RvAboutBean;
//import com.lipiao.makerandroid.R;
//import com.wwm.makerandroid.makerandroid.Utils.GlideImageLoader;
//import com.wwm.makerandroid.makerandroid.Utils.HttpUtil;
//import com.wwm.makerandroid.makerandroid.Utils.LogUtil;
//import com.wwm.makerandroid.makerandroid.Utils.SqliteUtils;
//import com.wwm.makerandroid.makerandroid.View.Activity.WebActivity;
//import com.wwm.makerandroid.makerandroid.View.Adapter.AboutAdapter;
//import com.wwm.makerandroid.makerandroid.View.NoScrollListView;
//import com.youth.banner.Banner;
//import com.youth.banner.BannerConfig;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Objects;
//
//import retrofit2.Call;
//import retrofit2.Callback;
//import retrofit2.Response;
//
///**
// * 用户界面碎片
// * 包含几个简要信息
// * 博客地址
// * Maker-IoT官网地址
// */
//public class UserFragment extends Fragment {
//
//    static String userNumber;//账号
//    static String password;//密码
//
//    String TAG = "UserFragment";
//    View rootView;
//    RecyclerView rvAbout;//关于
//    NoScrollListView lvCollect;//收藏 不可滑动listView
//    AboutAdapter aboutAdapter;
//    List<RvAboutBean> rvAboutBeanList = new ArrayList<>();
//    Banner banner;//头部banner 轮播一些图片
//    ArrayList<String> images = new ArrayList<>();//图片资源集合
//
//    static List<CollectArticleBean> collectArticleBeanList = new ArrayList<>();//收藏文章的集合
////    static List<UserCollectArticleBean.ArticleListBean> articleListBeanArrayList = new ArrayList<>();//收藏文章的集合 服务器
//    static List<LinkedTreeMap> articleListBeanArrayList = new ArrayList<>();//收藏文章的集合 服务器
//    static List<String> arrStr;//收藏文章的标题 字符串数组
//    AlertDialog alertDialog;
//    static ArrayAdapter<String> adapter;
//
//    public UserFragment() {
//        // Required empty public constructor
//    }
//
//    public static UserFragment newInstance(String username, String password) {
//        UserFragment fragment = new UserFragment();
//        Bundle bundle = new Bundle();
//        bundle.putString("userNumber", username);
//        bundle.putString("password", password);
//        fragment.setArguments(bundle);
//        return fragment;
//    }
//
//    //创建碎片视图
//    @Override
//    public View onCreateView(LayoutInflater inflater, ViewGroup container,
//                             Bundle savedInstanceState) {
//        rootView = inflater.inflate(R.layout.fragment_user, container, false);
//        initView();
//        assert getArguments() != null;//判空处理
//        userNumber = getArguments().getString("userNumber");//获取账号
//        password = getArguments().getString("password");//获取账号
//        Log.d(TAG, "onCreateView: userNumber " + userNumber + " password " + password);
//        return rootView;
//    }
//
//    //重新获取焦点时 重新加载数据（因为可能用户有新的收藏文章 需要重新从sqLite数据库中查询并显示）
//    @Override
//    public void onResume() {
//        super.onResume();
//        initData();
//    }
//
//    //碎片是否可见 可见下重新加载数据
//    @Override
//    public void setUserVisibleHint(boolean isVisibleToUser) {
//        super.setUserVisibleHint(isVisibleToUser);
//        Log.d(TAG, "setUserVisibleHint: " + isVisibleToUser);
//        if (isVisibleToUser) {
//            //用户可见 获取数据并将数据放到视图控件中
//            initData();
//            fetchData();
//        }
//    }
//
//    //实例化控件
//    public void initView() {
//        banner = rootView.findViewById(R.id.user_fragment_banner);
//        rvAbout = rootView.findViewById(R.id.rv_user_fragment_about);
//        lvCollect = rootView.findViewById(R.id.lv_collect_article);
//    }
//
//    //获取数据
//    protected void initData() throws NullPointerException {
//        LogUtil.d(TAG, "initData");
//        //接口参数 无
//        Call<UserCollectArticleBean> callBanner = HttpUtil.getUserService().findAllArticle(userNumber);
//        callBanner.enqueue(new Callback<UserCollectArticleBean>() {
//            @Override
//            public void onResponse(Call<UserCollectArticleBean> call, Response<UserCollectArticleBean> response) {
//
//
//                Log.d(TAG, "onResponse: " + response.body().getMessage());
//                articleListBeanArrayList = new ArrayList<>();//空初始化收藏的文章集合
//                Object articleList=response.body().getData();
//                //                   Map<String,List> map= (HashMap)MyBeanUtils.getObjectToMap(articleListObj);
////                   List list=map.get("articleList");
//                articleListBeanArrayList = (List<LinkedTreeMap>) articleList;
//                fetchData();
//            }
//
//            @Override
//            public void onFailure(Call<UserCollectArticleBean> call, Throwable t) {
//
//            }
//        });
//
//
//        //初始化收藏的文章
//        collectArticleBeanList = new ArrayList<>();//空初始化收藏的文章集合
//        collectArticleBeanList = SqliteUtils.queryAll();
//
//        //空初始化 关于集合
//        rvAboutBeanList = new ArrayList<>();
//        //images
//        images.add("https://wwm-1.oss-cn-nanjing.aliyuncs.com/app/2e7cc2a9881d11ebb6edd017c2d2eca2.png");
//        images.add("https://wwm-1.oss-cn-nanjing.aliyuncs.com/app/6f6da075a0434209a0a73d1bb35058b3.jpg");
//        images.add("https://wwm-1.oss-cn-nanjing.aliyuncs.com/app/df5e24e5a34f45f190ed41aefa6c93b6.jpg");
//        images.add("https://wwm-1.oss-cn-nanjing.aliyuncs.com/app/f7268f98c8a549b4866e94541f2a5186.png");
//
//        banner.setImages(images).setImageLoader(new GlideImageLoader());
//        //设置banner样式 不显示指示器和标题
//        banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR);
//        //设置轮播时间
//        banner.setDelayTime(2500);
//        banner.start();
//
//        //top rv
//        rvAbout.setHasFixedSize(true);
//        //平常的水平一个item布局的流
//        LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
//        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
//        rvAbout.setLayoutManager(layoutManager);
////初始化mList
//        //https://developer.huaweicloud.com/hero/forum.php?mod=group&fid=831
//
//        RvAboutBean mayun = new RvAboutBean(R.mipmap.mayun, "码云首页", "https://gitee.com/field-pointer_001");
////        RvAboutBean hexo = new RvAboutBean(R.mipmap.me, "", "https://lipiaomkx.gitee.io/");
//
//
//        rvAboutBeanList.add(mayun);
////        rvAboutBeanList.add(hexo);
//        //实例化MyAdapter并传入rvAboutBeanList对象
//        aboutAdapter = new AboutAdapter(rvAboutBeanList, getContext());
//
//        //自定义点击事件
//        aboutAdapter.setOnAboutItemClickListener((view, position) -> {
//            //根据URL创建web活动
//            Intent intent = new Intent(getActivity(), WebActivity.class);
//            intent.putExtra("webURL", rvAboutBeanList.get(position).getAboutUrlStr());
//            intent.putExtra("userNumber", userNumber);
//            startActivity(intent);
//        });
//        //为RecyclerView对象mRecyclerView设置adapter
//        rvAbout.setAdapter(aboutAdapter);
//
//    }
//
//    //将数据放到视图控件中
//    public void fetchData() {
//
//        //articleListBeanArrayList  源自服务器
//        //collectArticleBeanList 本地
////        if (articleListBeanArrayList.size() >= 0) {
//            Log.d(TAG, "fetchData: 服务器中的数据放到listview articleListBeanArrayList.size()" + articleListBeanArrayList.size());
//            //初始化一个大小和收藏文章集合大小一致的 字符串数组
//            arrStr = new ArrayList<>();
//            for (LinkedTreeMap map : articleListBeanArrayList) {
//                arrStr.add(map.get("collectTitles").toString());//i 先用后加1
//            }
//            loadRvView(0);
//
////        } else {
////            Log.d(TAG, "fetchData: sqlite中的数据放到listview articleListBeanArrayList.size()=" + articleListBeanArrayList.size());
////            //初始化一个大小和收藏文章集合大小一致的 字符串数组
////            arrStr = new ArrayList<>();
////            for (CollectArticleBean collectArticleBean : collectArticleBeanList) {
////                arrStr.add(collectArticleBean.getCollectTitles());//i 先用后加1
////            }
////            loadRvView(1);
//
////        }//else
//
//
//    }
//
//
//    // 0代表服务器数据源  1代表sqlite数据源
//    public void loadRvView(int i) {
//        adapter = new ArrayAdapter<String>(Objects.requireNonNull(getActivity()),
//                android.R.layout.simple_list_item_1, arrStr);//新建并配置ArrayAapeter
//        lvCollect.setAdapter(adapter);
//        setListViewHeightBasedOnChildren(lvCollect);//解决ScrollView嵌套ListView只显示一条的问题
//        //点击事件
//        lvCollect.setOnItemClickListener((adapterView, view, i1, l) -> {
//            //根据URL创建web活动
//            Intent intent = new Intent(getActivity(), WebActivity.class);
//            intent.putExtra("webURL", collectArticleBeanList.get(i1).getCollectUrl());
//            startActivity(intent);
//        });
//        //长按事件
//        lvCollect.setOnItemLongClickListener((adapterView, view, i14, l) -> {
//            alertDialog = new AlertDialog.Builder(Objects.requireNonNull(UserFragment.this.getActivity()))
//                    .setMessage("是否取消收藏该文章 ?")
//                    .setPositiveButton("确定", (dialogInterface, i13) -> {
//
////                        //articleListBeanArrayList  源自服务器
////                        //collectArticleBeanList 本地
////                        if (i == 0) {//服务器数据源
////                            //删除对应服务器数据源
////                            Call<MessageBean> call = HttpUtil.getUserService().deleteArticle(userNumber, articleListBeanArrayList.get(i14).getCollectUrl());
////                            call.enqueue(new Callback<MessageBean>() {
////                                @Override
////                                public void onResponse(Call<MessageBean> call, Response<MessageBean> response) {
////                                    Log.d(TAG, "onResponse: " + response.body().getMessage());
////                                }
////
////                                @Override
////                                public void onFailure(Call<MessageBean> call, Throwable t) {
////
////                                }
////                            });
////                            //删除对应SQlite中的数据
//////                            String backStr = SqliteUtils.delete(articleListBeanArrayList.get(i14).getCollectUrl());
//////                            Toast.makeText(UserFragment.this.getContext(), backStr, Toast.LENGTH_SHORT).show();
////                            //删除数据源后 更新recycleView界面
////                            Log.d(TAG, "fetchData: " + i14);
////                        } else {
////                            //删除数据 提示插入是否成功 隐藏对话框
////                            String backStr = SqliteUtils.delete(collectArticleBeanList.get(i14).getCollectUrl());
////                            Toast.makeText(UserFragment.this.getContext(), backStr, Toast.LENGTH_SHORT).show();
////                            //删除数据源后 更新recycleView界面
////                            Log.d(TAG, "fetchData: " + i14);
////                        }
////                        arrStr.remove(i14);//删除数据源,移除集合中当前下标的数据
////                        adapter.notifyDataSetChanged();//刷新被删除的地方
//
//
//                    })
//                    .setNegativeButton("取消", (dialogInterface, i12) -> {
//                        //只隐藏对话框即可
//                        alertDialog.hide();
//                    })
//                    .create();
//            alertDialog.show();
//            return true;//表示此事件已经消费，不会触发单击事件
//        });
//    }
//
//    /**
//     * 解决ScrollView嵌套ListView只显示一条的问题
//     *
//     * @param listView
//     */
//    public void setListViewHeightBasedOnChildren(ListView listView) {
//        // 获取ListView对应的Adapter
//        ListAdapter listAdapter = listView.getAdapter();
//        if (listAdapter == null) {
//            return;
//        }
//        int totalHeight = 0;
//        for (int i = 0, len = listAdapter.getCount(); i < len; i++) {
//            // listAdapter.getCount()返回数据项的数目
//            View listItem = listAdapter.getView(i, null, listView);
//            // 计算子项View 的宽高
//            listItem.measure(0, 0);
//            // 统计所有子项的总高度
//            totalHeight += listItem.getMeasuredHeight();
//        }
//        ViewGroup.LayoutParams params = listView.getLayoutParams();
//        params.height = totalHeight + (listView.getDividerHeight() *
//                (listAdapter.getCount() - 1));
//        // listView.getDividerHeight()获取子项间分隔符占用的高度
//        // params.height最后得到整个ListView完整显示需要的高度
//        listView.setLayoutParams(params);
//        listView.invalidate();
//    }
//
//}
